package com.ly.cloud.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.ly.cloud.dto.ClassInfoDropDownDto;
import com.ly.cloud.dto.ClassInfoDto;
import com.ly.cloud.vo.ClassInfoDropDownVo;
import com.ly.cloud.vo.ClassInfoVo;
import com.ly.cloud.vo.DepartmentVo;
import com.ly.cloud.vo.NjZyTemplateVo;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

/**
 * @Description:
 * @Author: pengshiqng
 * @Date: Create in 2018/12/14
 */
public interface ClassInfoService {

    Page<ClassInfoVo> selectPage(Page<ClassInfoVo> page , ClassInfoDto dto);

    int deleteById(String id) ;

    int deleteByIds(List<String> ids) ;

    int insert(String loginUserName , ClassInfoDto dto);

    int uodateById(String loginUserName ,ClassInfoDto dto) ;

    //查询所有的年级
    List<String> findAllGrade();

    //根据年级查询所有的学院
    List<DepartmentVo> findAllCollegeByGrade(String grade);
    
    /** 
   	 * Method Name: selectDropDownBjxx
   	 * Description:  
   	 * 根据条件查询班级下拉列表
   	 * @param dto 条件封装
   	 * @return 班级下拉列表
   	 * @author luhuacong
   	 * @date: 2018年12月20日
   	 */
    List<ClassInfoDropDownVo> selectDropDownBjxx(ClassInfoDropDownDto dto);

    //根据年级和学院查询所有的专业
    List<NjZyTemplateVo> findAllProfessional(String grade,String college);
    
    /** 
   	 * Method Name: selectById
   	 * Description:  
   	 * 根据班级编号查询班级信息
   	 * @param bjdm 班级代码
   	 * @return 班级信息
   	 * @author luhuacong
   	 * @date: 2018年12月19日
   	 */
    ClassInfoVo selectById(String bjdm);
    
    /** 
   	 * Method Name: selectXzByBjdm
   	 * Description:  
   	 * 根据班级编号查询学制
   	 * @param bjdm 班级代码
   	 * @return 班级的学制
   	 * @author luhuacong
   	 * @date: 2018年12月20日
   	 */
    Map<String,String> selectXzByBjdm(String bjdm);
    
    /** 
	 * Method Name: insertBjList
	 * Description:  
	 * 批量创建班级
	 * @param dto
	 * @param createMan创建人
	 * @return 成功创建的班级个数
	 * @author luhuacong
	 * @date: 2018年12月17日
	 */
    Integer insertBjList(List<ClassInfoDto> dtoList,String createMan);
    
    /** 
	 * Method Name:updateFdyByIdList
	 * Description:  
	 * 批量设置班级辅导员
	 * @param bjdmLList 班级代码列表
	 * @param Fdy 辅导员
	 * @param xgr 修改人
	 * @return 成功设置辅导员的班级个数
	 * @author luhuacong
	 * @date: 2018年12月19日
	 */
    Integer updateFdyByIdList(List<String> bjdmList,String fdy,String xgr);
    
    /** 
	 * Method updateXqByIdList
	 * Description:  
	 * 批量设置班级所属校区
	 * @param bjdmLList 班级代码列表
	 * @param xqdm 校区编号
	 * @param xgr 修改人
	 * @return 成功设置校区的班级个数
	 * @author luhuacong
	 * @date: 2018年12月19日
	 */
    Integer updateXqByIdList(List<String> bjdmList,String xqdm,String xgr);
}
